Contenido (sujeto a modificaciones)
Se detallan la mayoría de los contenidos de programación que serán abordados. Es necesario destacar que en cada actividad serán abordados transversalmente contenidos asociados a problemas que son estudiados por la ciencia de datos. Se espera en cada clase incorporar ejercicios prácticos que desarrollen las habilidades de programación en computadoras.
Clase 1:
Objetivo: sesión inicial del curso donde se presentan los temas a abordar y la instalación de R y RStudio.
Contenido:
Por qué R
Ciclo de un proyecto de ciencia de datos
Entornos de Programación
Instalar R según sistema operativo
RStudio: proyecto, estructura, ventanas, directorios de trabajo, RStudio en línea.
R Vs. RStudio
Proyectos de Trabajo: crear proyecto, ambiente, directorio de trabajo, estructura de proyectos, ventanas. Consumo de memoria
Archivos: Scripts R y Rmd.
Ejercicio práctico: Crear un proyecto y dentro del proyecto un script “hello word.R”
Clase 2:
Objetivo: Comprender el entorno de programación. Aprender a instalar paquetes, cargarlos.
Contenido:
Crear objetos, variables, nombres variables
Fundamentos básicos de programación en R. Funciones precargadas
Consola / Script
Crear scripts.
Archivos: R, Quarto, RData y RMD.
Rbase
Ejercicio práctico:
- Crear scripts
- Crear variables de distintos tipos
- Corregir variables
Clase 3:
Objetivo: Conocer la estructura de datos denominada “vector”
Contenido:
Paquetes: instalación y carga de paquetes
Repositorios de paquetes
Vectores: logical, character, integer, numeric, date. Función mode
Cómo pedir ayuda
Ejercicio práctico:
- Crear vectores de distintos tipo “mode”
Clase 4:
Objetivo: Seguir conociendo las principales estructuras de datos que se manejan dentro de R
Contenido:
“Coerce” dentro de los vectores. Función class
Trabajando Factores
Matrices
Listas
Acceder a elementos de vectores, listas: índices y atributos. Función print
Ejercicio práctico:
- Practicar elementos de coerce, accesos a elementos de listas.
Clase 5:
Presentación: Conocer la estructura de datos Data Frame y sus atributos
Objetivo:
Data Frames
Importar datos 1- Función read_csv
Acceso elementos Data Frame
Visualizar parcial o totalmente, función view
Funciones str, summary y tabulaciones cruzadas
Ejercicio práctico:
- Crear una Data Frame
Clase 6:
Objetivo: Comprender cómo obtener subconjuntos condicionados sobre vectores o Data Frames y tibbles
Contenido:
Operadores lógicos, tabla de la verdad
Programación funcional
Subsets
Presentación dplyr
Aplicación de filtros via dplyr filter
Ejercicio práctico:
- Subsets y Filter de Data Frames precargadas
Clase 7:
Objetivo: Procesamientos de datos encadenados e introducción a la generación de reportes
Contenido:
Encadenamiento en los procesamientos: operador pipe %>%
Carga de datos desde excel
Gráfico de frecuencia de una variable, Análisis Exploratorio de datos
Aplicación filtros en data frames por funciones máx, min, mean
Preparar un reporte estático e interactivo
Ejercicio práctico:
- Crear un reporte con un subset de datos
Clase 8:
Objetivo: Creando datos derivados- mutate aplicado a datos de tipo fechas
Contenido:
Data Frames aplicar mutate -1
Trabajando con fechas: month, day, year, convertir formatos POSIX
Ejercicio práctico:
- crear columnas con día, mes y año en una Data Frame
Clase 9:
Objetivo: Creando datos derivados- mutate aplicado a datos de tipo “string”
Contenido:
Data Frames aplicar mutate -2
Trabajando con strings: str_detect, str_split, str_squish, entre otras.
Expresiones regulares
Separate
Ejercicio práctico:
- Usar separate dentro de una data frame vs mutate
Clase 10:
Objetivo: Comprender funciones condicionales vectorizadas
Contenido:
Binds por columa o por fila.
Función ifelse
Función case_when
Arrange
Ejercicio práctico:
- Lectura de datos, juntar Data Frames y aplicar condicional.
Clase 11:
Objetivo: Comprender un flujo completo de importar y transformar los datos con el pipe operator
Contenido:
Función select
Aplicación de un pipeline compuesto
Ejercicio práctico:
- Aplicar lo aprendido en bloques del 7 al 11.
Clase 12:
Objetivo: agrupación de datos dentro de una Data Frame y obtención de valores sumarios
Contenido:
Agrupación de datos: group-by
Presentación estructura tibble
Sumarizar datos: summarise
Desagrupar
Ejercicio práctico:
- Agrupar una Data Frame por variable categórica y obtener valores sumarios
Clase 13:
Objetivo: comprender los datos representados en formatos wide o longer
Contenido:
Pivoteo de datos
Formatos de datos long
Formatos de datos wide
Ejercicio práctico:
- Tranformar de formato wide a long una Data Frame
Clase 14:
Objetivo: comprender las familia de las funciones vectorizadas apply
Contenido:
Programación funcional:
sapply
lapply
apply
tapply
Ejercicio práctico:
- Aplicar lapply sobre subset de columnas de una Data Frame
Clase 15:
Objetivo: Introducción al análisis exploratorio de datos e imputación de datos faltantes.
Contenido:
Lectura de datos JSON
Inspección de datos
Introducción Análisis Exploratorio de Datos
Imputación de datos faltantes
Ejercicio práctico:
- Realizar un reporte y análisis exploratorio sobre un conjunto de datos no mayor 5 variables
Clase 16:
Objetivo: Abordar las estructuras de control y los ciclos
Contenido:
Estructuras de control if, else
Loops, whiles
Gráficos en Plotly
Ejercicio práctico:
- Mediante un loop generar distintos gráficos y guardarlos.
Clase 17:
Objetivo: comprender la lógica de las funciones
Contenido:
Crear funciones: argumentos, default, return
Vectorizados Vs. Ciclos
Ejercicio práctico:
- Crear dos funciones que contengan una estructura de control
Clase 18:
Objetivo: Comprender los tipos de gráficos y sus usos. Introducción al sistema ggplot2.
Contenido:
Sistema gráfico ggplot2: grammar of graphics 1
Tipos de gráficos
Leyendas
Ejercicio práctico:
- Crear 2 gráficos: 1 de barra, 1 de líneas
Clase 19:
Objetivo: Comprender los tipos de gráficos y sus usos. Introducción al sistema ggplot2.
Contenido:
Sistema gráfico ggplot2: grammar of graphics 2
Facets
Adaptación colores
Ejercicio práctico:
- Crear facets con paleta de colores personalizada.
Clase 20:
Objetivo: familia de funciones vectorizadas 2
Contenido:
Funciones vectorizadas purrr
Bind_rows, bind_cols
Lecturas en bucle
Ejercicio práctico:
- Lectura de datos en bucle y conformación de una estructura de datos unificada.
Clase 21:
Objetivo: Comprender la lógica de joins (unión) de Data Frames.
Contenido:
joins de datos
Regresión lineal
Ejercicio práctico:
- Aplicar un join de datos y obtener una regresión lineal por grupo de datos
Clase 22:
Objetivo: Aspectos generales de recursos en línea. Uso de R en paralelo con python.
Contenido:
Trabajando con repositorios de códigos
Control de Versiones
Cómo pedir ayuda
Dónde pedir ayuda
Ejercicio práctico:
- según dinámica de las sesiones previas
Clase 23:
Objetivo: Introducción al machine learning supervisado y no supervisado
Contenido:
Introducción al machine learning con paquete caret.
Aprendizaje supervisado: Arboles de decisión
Aprendizaje no supervisado: clustering
Ejercicio práctico:
- Crear clusters sobre un conjunto de datos
Clase 24:
Objetivo: crear aplicaciones web interactivas con Shiny 1
Contenido:
Introducción a Shiny 1: Aplicaciones web interactivas
estructura UI - Server
Principios de programación reactiva
Ejercicio práctico:
- crear una aplicación web interactiva mínima.
Clase 25:
Objetivo: crear aplicaciones web interactivas con Shiny 2
Contenido:
Introducción a Shiny 2: Aplicaciones web interactivas
- Sliders, inputs de texto, inputs numéricos, render de tablas y gráficos
Ejercicio práctico:
- continúa de sesión anterior: crear una aplicación web interactiva mínima 2
Clase 26 a la 32:
- Objetivo: trabajar en proyecto final de la materia donde se aplican todos los contenidos revisados con la finalidad de crear un producto basado en el uso de datos.